﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MigColetaMinMax.DAO
{
    class Querys
    {
        #region Querys do Banco

        public string dbQuery(string query)
        {
            string retorno = string.Empty;
            switch (query)
            {
                case "ObterCalendario":
                    retorno = @"Select top 1 Mes_Faturamento, Remessa, Data_Leitura_Inicial, Data_Leitura_Final, Data_Faturamento, Data_Impressao
                                From Tbl_Calendario 
                                Where Remessa = @remessa And Mes_Faturamento = @mesFat";
                    break;                
                case "InserirControleRoteiro":
                    retorno = @"INSERT INTO Tbl_Controle_Roteiro_WM(Matricula, Remessa, MesFat, MinNumOrdem, MaxNumOrdem, Concluido) 
                                VALUES (@matricula, @remessa, @mes, @ordMin, @ordMax, @concluido)";
                    break;                
                case "ObterRoteirosRmMes":
                    retorno = @"SELECT EQP.Descricao Equipe, LET.Apelido Leiturista, TCR.Matricula Matricula, TCR.Remessa Remessa, TCR.MesFat [Mês Fat], TCR.MinNumOrdem MinNumOrdem, TCR.MaxNumOrdem MaxNumOrdem, TCR.Concluido [Concluído], TCR.DtProcessamento [Data]
                                FROM (Tbl_Controle_Roteiro_WM TCR INNER JOIN Leituristas LET ON TCR.Matricula = LET.Matricula) INNER JOIN Equipes EQP ON LET.IdEquipe = EQP.IdEquipe
                                WHERE ((TCR.Remessa=@remessa) AND (TCR.MesFat=@mesfat))
                                ORDER BY EQP.Descricao, TCR.DtProcessamento DESC , LET.Apelido";
                    break;
                case "ObterLeituraRmMes":
                    retorno = @"SELECT EQP.Descricao Equipe, LET.Apelido Leiturista, TCL.Matricula Matricula, TCL.Remessa Remessa, TCL.MesFat [Mês Fat], TCL.MinNumOrdem MinNumOrdem, TCL.MaxNumOrdem MaxNumOrdem, TCL.Concluido [Concluído], TCL.DtProcessamento [Data], TCL.Enviado [Enviado]
                                  FROM (Tbl_Controle_Leitura_WM TCL 
                            INNER JOIN Leituristas LET 
                                    ON TCL.Matricula = LET.Matricula) 
                            INNER JOIN Equipes EQP 
                                    ON LET.IdEquipe = EQP.IdEquipe
                                 WHERE ((TCL.Remessa=@remessa) 
                                   AND (TCL.MesFat=@mesfat))
                              ORDER BY EQP.Descricao, TCL.DtProcessamento DESC , LET.Apelido";
                    break;
                case "ObterRoteiroMes":
                    retorno = @"SELECT EQP.Descricao Equipe, LET.Apelido Leiturista, TCR.Matricula Matricula, TCR.Remessa Remessa, TCR.MesFat [Mês Fat], TCR.MinNumOrdem MinNumOrdem, TCR.MaxNumOrdem MaxNumOrdem, TCR.Concluido [Concluído], TCR.DtProcessamento [Data]
                                FROM (Tbl_Controle_Roteiro_WM TCR INNER JOIN Leituristas LET ON TCR.Matricula = LET.Matricula) INNER JOIN Equipes EQP ON LET.IdEquipe = EQP.IdEquipe
                                WHERE (TCR.MesFat=@mesfat)
                                ORDER BY TCR.Remessa, EQP.Descricao, TCR.DtProcessamento DESC , LET.Apelido";
                    break;
                case "ObterLeituraMes":
                    retorno = @"SELECT EQP.Descricao Equipe, LET.Apelido Leiturista, TCL.Matricula Matricula, TCL.Remessa Remessa, TCL.MesFat [Mês Fat], TCL.MinNumOrdem MinNumOrdem, TCL.MaxNumOrdem MaxNumOrdem, TCL.Concluido [Concluído], TCL.DtProcessamento [Data], TCL.Enviado [Enviado]
                                FROM (Tbl_Controle_Leitura_WM TCL INNER JOIN Leituristas LET ON TCL.Matricula = LET.Matricula) INNER JOIN Equipes EQP ON LET.IdEquipe = EQP.IdEquipe
                                WHERE (TCL.MesFat=@mesfat)
                                ORDER BY TCL.Remessa, EQP.Descricao, TCL.DtProcessamento DESC, LET.Apelido";
                    break;
                case "ObterNomeLeiturista":
                    retorno = "SELECT Apelido Leiturista,Ativo FROM Leituristas WHERE Ativo = '1' ORDER BY Apelido";
                    break;
                case "ObterNomeLeituristaMatricula":
                    retorno = "SELECT NomeCompleto,Ativo FROM Leituristas WHERE Matricula =@matricula And Ativo = '1'";
                    break;
                case "ObterMatatricula":
                    retorno = "SELECT Matricula,Ativo FROM Leituristas WHERE Apelido =@nome And Ativo = '1'";
                    break; 
                case "ObterRoteiroLeiturista":
                    retorno = @"SELECT EQP.Descricao Equipe, LET.Apelido Leiturista, TCR.Matricula Matricula, TCR.Remessa Remessa, TCR.MesFat [Mês Fat], TCR.MinNumOrdem MinNumOrdem, TCR.MaxNumOrdem MaxNumOrdem, TCR.Concluido [Concluído], TCR.DtProcessamento [Data]
                                FROM (Tbl_Controle_Roteiro_WM TCR INNER JOIN Leituristas LET ON TCR.Matricula = LET.Matricula) INNER JOIN Equipes EQP ON LET.IdEquipe = EQP.IdEquipe
                                WHERE (TCR.Matricula=@matricula)
                                ORDER BY TCR.Remessa, TCR.DtProcessamento DESC, EQP.Descricao , LET.Apelido";
                    break;
                case "ObterLeituraLeiturista":
                    retorno = @"SELECT EQP.Descricao Equipe, LET.Apelido Leiturista, TCL.Matricula Matricula, TCL.Remessa Remessa, TCL.MesFat [Mês Fat], TCL.MinNumOrdem MinNumOrdem, TCL.MaxNumOrdem MaxNumOrdem, TCL.Concluido [Concluído], TCL.DtProcessamento [Data], TCL.Enviado [Enviado]
                                FROM (Tbl_Controle_Leitura_WM TCL INNER JOIN Leituristas LET ON TCL.Matricula = LET.Matricula) INNER JOIN Equipes EQP ON LET.IdEquipe = EQP.IdEquipe
                                WHERE (TCL.Matricula=@matricula)
                                ORDER BY TCL.Remessa, TCL.DtProcessamento DESC, EQP.Descricao , LET.Apelido";
                    break;
                case "ObterRoteiroLeituristaMes":
                    retorno = @"SELECT EQP.Descricao Equipe, LET.Apelido Leiturista, TCR.Matricula Matricula, TCR.Remessa Remessa, TCR.MesFat [Mês Fat], TCR.MinNumOrdem MinNumOrdem, TCR.MaxNumOrdem MaxNumOrdem, TCR.Concluido [Concluído], TCR.DtProcessamento [Data]
                                FROM (Tbl_Controle_Roteiro_WM TCR INNER JOIN Leituristas LET ON TCR.Matricula = LET.Matricula) INNER JOIN Equipes EQP ON LET.IdEquipe = EQP.IdEquipe
                                WHERE (TCR.Matricula=@matricula) And (TCR.MesFat=@mesfat)
                                ORDER BY TCR.Remessa, TCR.DtProcessamento DESC, EQP.Descricao , LET.Apelido";
                    break;
                case "ObterLeituraLeituristaMes":
                    retorno = @"SELECT EQP.Descricao Equipe, LET.Apelido Leiturista, TCL.Matricula Matricula, TCL.Remessa Remessa, TCL.MesFat [Mês Fat], TCL.MinNumOrdem MinNumOrdem, TCL.MaxNumOrdem MaxNumOrdem, TCL.Concluido [Concluído], TCL.DtProcessamento [Data], TCL.Enviado [Enviado]
                                FROM (Tbl_Controle_Leitura_WM TCL INNER JOIN Leituristas LET ON TCL.Matricula = LET.Matricula) INNER JOIN Equipes EQP ON LET.IdEquipe = EQP.IdEquipe
                                WHERE (TCL.Matricula=@matricula) And (TCL.MesFat=@mesfat)
                                ORDER BY TCL.Remessa, TCL.DtProcessamento DESC, EQP.Descricao , LET.Apelido";
                    break;
                case "ObterRoteiroLeituristaRemMes":
                    retorno = @"SELECT EQP.Descricao Equipe, LET.Apelido Leiturista, TCR.Matricula Matricula, TCR.Remessa Remessa, TCR.MesFat [Mês Fat], TCR.MinNumOrdem, TCR.MaxNumOrdem, TCR.Concluido [Concluído], TCR.DtProcessamento [Data]
                                FROM (Tbl_Controle_Roteiro_WM TCR INNER JOIN Leituristas LET ON TCR.Matricula = LET.Matricula) INNER JOIN Equipes EQP ON LET.IdEquipe = EQP.IdEquipe
                                WHERE (TCR.Matricula=@matricula) And (TCR.MesFat=@mesfat) And (TCR.Remessa=@remessa)
                                ORDER BY TCR.Remessa, TCR.DtProcessamento DESC, EQP.Descricao , LET.Apelido";
                    break;
                case "ObterLeituraLeituristaRemMes":
                    retorno = @"SELECT EQP.Descricao Equipe, LET.Apelido Leiturista, TCL.Matricula Matricula, TCL.Remessa Remessa, TCL.MesFat [Mês Fat], TCL.MinNumOrdem MinNumOrdem, TCL.MaxNumOrdem MaxNumOrdem, TCL.Concluido Concluido, TCL.DtProcessamento [Data], TCL.Enviado [Enviado] 
                                FROM (Tbl_Controle_Leitura_WM TCL INNER JOIN Leituristas LET ON TCL.Matricula = LET.Matricula) INNER JOIN Equipes EQP ON LET.IdEquipe = EQP.IdEquipe
                                WHERE (TCL.Matricula=@matricula) And (TCL.MesFat=@mesfat) And (TCL.Remessa=@remessa)
                                ORDER BY TCL.Remessa, TCL.DtProcessamento DESC, EQP.Descricao , LET.Apelido";
                    break;                
                default:
                    retorno = string.Empty;
                    break;
            }
            return retorno;
        }

        #endregion
    }
}
